﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HTTT.Utilities;
using System.Web.Security;

namespace HTTT.admin.htuser
{
    public partial class ChangePass : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CheckPermission();
            }
        }

       
        private void CheckPermission()
        {
            if (!Page.User.IsInRole(Constants.ROLE_SUPER_ADMINISTRATOR)
                 && !Page.User.IsInRole(Constants.ROLE_ADMINISTRATOR))
            {
                Response.Redirect("/admin/AccessDenied.aspx");
            }
        }

        

        protected void btnSaveClose_Click(object sender, EventArgs e)
        {
            ReturnValue<bool> Valid = ValidateData();
            if (Valid.RetValue)
            {
                if (SaveForm())
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "Redirect", Common.FormatMsgThenRedirect("Đổi mật khẩu thành công", "UserList.aspx"), true);
                }
                else
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "Redirect", Common.FormatAlertMsg("Đổi mật khẩu không thành công"), true);
                }
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "Message", Common.FormatAlertMsg(Valid.Msg), true);
            }

        }
        
        protected void btnCancel_Click(object sender, EventArgs e)
        {
            Response.Redirect("UserList.aspx");
        }

        private ReturnValue<bool> ValidateData()
        {
            if (txtOldPass.Text.Trim() == string.Empty) return new ReturnValue<bool>(false, "Phải nhập password");
            if (txtNewPass.Text.Trim() != txtNewPwdAgain.Text.Trim()) return new ReturnValue<bool>(false, "Mật khẩu mới không trùng nhau");
            return new ReturnValue<bool>(true, "");
        }


        private bool SaveForm()
        {
            MembershipUser usr = Membership.GetUser(Page.User.Identity.Name);
            
            bool result = usr.ChangePassword(txtOldPass.Text, txtNewPass.Text);
            return result;
        }
    }
}